草庐IT

Swift 递归枚举

全部标签

c# - 为什么 C# 中没有反向枚举器?

有谁知道在C#中不包含反向枚举器是否有特定原因或设计决定?如果有C++reverse_iterator的等效项就好了,就像Enumerator是C++iterator的等效项一样。可以反向迭代的集合将只实现类似IReverseEnumerable的东西,并且可以做类似的事情:List.ReverseEnumeratorritr=collection.GetReverseEnumerator();while(rtir.MoveNext()){//dostuff}这样,您将能够以相同的方式迭代列表和链表,而不是对一个使用索引器,对另一个使用先前的链接,从而实现更好的抽象

c# - 64 位枚举? C#

是否有可能获得一个枚举来保存64位值?我写了下面的代码并得到了这个编译错误消息。enumEnumTest{a=0x100000000};errorCS0266:Cannotimplicitlyconverttype'long'to'int'.Anexplicitconversionexists(areyoumissingacast?) 最佳答案 是的,您需要从long中“导出”它。publicenumMyEnum:long{} 关于c#-64位枚举?C#,我们在StackOverflow

c# - 如何通过枚举名称和值名称获取未知枚举的值?

很抱歉问这个问题,但我没有找到适合这个任务的解决方案:我有一个名为“myEnum”的枚举(函数不知道MyEnum)我需要获取myEnum的Value的int值例子:程序员将其枚举命名为“myEnum”:publicenummyEnum{foo=1,bar=2,}我的函数应该执行以下操作:通过字符串获取“myEnum”的“foo”的值函数应由以下人员打开:publicintGetValueOf(stringEnumName,stringEnumConst){}所以当程序员A打开它时:inta=GetValueOf("myEnum","foo");它应该返回1当程序员B有一个名为“mySp

c# - 'OR' 标记枚举中所有值的最佳方法?

给定枚举:[Flags]publicenummytest{a=1,b=2,c=4}我想出了两种方法来表示单个变量中的所有值:varOR1=(mytest)Enum.GetNames(typeof(mytest)).Sum(a=>(int)Enum.Parse(typeof(mytest),a));varOR2=(mytest)(typeof(mytest).GetEnumValues()asmytest[]).Sum(a=>(int)a);现在,虽然它们都有效,但有更简洁的方法吗?可能是我缺少的.NET方法?编辑:为了澄清,我需要函数是动态的-我不想通过指定每个enum值来计算它。

c# - 将字符串解析为枚举类型

我有一个像这样的枚举类型作为例子:publicEnumMyEnum{enum1,enum2,enum3};我将从配置文件中读取一个字符串。我需要的是将字符串解析为MyEnum类型或null或未定义。不确定以下代码是否有效(很抱歉现在无法访问我的VS)://example:ParseEnum("ENUM1",refeVal);boolParseEnum(stringvalue1,refeVal)whereT:Enum{boolbRet=false;varx=fromxinEnum.GetNames(typeof(T))wherestring.Equals(value1,x,StringC

c# - 可以将 C# 枚举声明为 bool 类型吗?

我可以将c#enum声明为bool吗:enumResult:bool{pass=true,fail=false} 最佳答案 它说批准的枚举类型是byte、sbyte、short、ushort、int、uint、long或ulong。enum(C#Reference) 关于c#-可以将C#枚举声明为bool类型吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1928799/

C# 将 int 类型的对象转换为可为 null 的枚举

我只需要能够将对象转换为可为空的枚举。对象可以是枚举、null或int。谢谢!publicenumMyEnum{A,B}voidPut(objectvalue){System.Nullableval=(System.Nullable)value;}Put(null);//worksPut(Myenum.B);//worksPut(1);//Invalidcastexception!! 最佳答案 怎么样:MyEnum?val=value==null?(MyEnum?)null:(MyEnum)value;盒装Actorint至MyEn

c# - 在 C# 中使用递归

在使用递归时,有没有关于如何避免堆栈溢出的一般规则? 最佳答案 您能够递归多少次取决于:堆栈大小(通常为1MBIIRC,但二进制文件可以手动编辑;我不建议这样做)递归的每个级别使用多少堆栈(例如,具有10个未捕获Guid局部变量的方法将比没有任何局部变量的方法占用更多堆栈)您正在使用的JIT-有时JIT将使用尾递归,有时则不会。规则很复杂,我记不住了。(有一个blogpostbyDavidBromanbackfrom2007和anMSDNpagefromthesameauthor/date,但它们现在可能已经过时了。)如何避免堆栈溢

c# - 如何重写查询表达式以用整数替换枚举?

受到能够在EF查询中使用枚举的愿望的启发,我正在考虑向我的存储库添加一个ExpressionVisitor,它将采用传入的标准/规范标准并重写它们以使用相应的持久int属性。我一直在我的(代码优先)实体中使用以下值后缀模式:publicclassUser:IEntity{publiclongID{get;set;}internalintMemberStatusValue{get;set;}publicMemberStatusMemberStatus{get{return(MemberStatus)MemberStatusValue;}set{MemberStatusValue=(int

c# - 任何人都知道一种快速获取枚举值自定义属性的方法吗?

这可能最好用一个例子来说明。我有一个带有属性的枚举:publicenumMyEnum{[CustomInfo("Thisisacustomattrib")]None=0,[CustomInfo("Thisisanotherattrib")]ValueA,[CustomInfo("Thishasanextraflag",AllowSomething=true)]ValueB,}我想从实例中获取这些属性:publicCustomInfoAttributeGetInfo(MyEnumenumInput){TypetypeOfEnum=enumInput.GetType();//thiswil